This invention relates generally to methods for upgrading database systems, and more particularly to methods for systematically verifying the correctness of a metadata upgrade.
The catalog of a database contains metadata that makes database objects self-descriptive. From time to time, it is necessary to modify objects or to change or update system privileges. When a new feature is created, the catalog may have new tables or columns to store the new object information. The representation of the object might also change in a new release. In these situations, the existing catalog representation must be transformed into a new form during a database upgrade, which is a process that transforms old catalog metadata into a new format.
Following a transformation, it is desirable to identify any change in the catalog and also to verify that the transformation of the catalog was correct. If particular operations were done on an old database to upgrade it, and the same operations are performed on a freshly initiated database, the two systems should behave substantially the same. From a user's perspective, this means that the semantics of the database systems should be identical.
A common way to test an upgrade is to perform sample tests on a database to determine whether it runs correctly. This approach, however, is not systematic and may frequently miss incorrect transformations and other problems. It is desirable to provide methods for systematically verifying the correctness of database metadata upgrades that are convenient and easy to use and that can provide both fast overall testing as well as complete and thorough testing to detect incorrect transformations. It is to these ends that the present invention is directed.